package org.example.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.example.system.common.model.Option;
import org.example.system.model.entity.SysDict;
import org.example.system.model.form.DictForm;
import org.example.system.model.query.DictPageQuery;
import org.example.system.model.vo.DictPageVO;

import java.util.List;

/**
 * 字典表服务
 *
 * @author LY
 */
public interface SysDictService extends IService<SysDict> {

    /**
     * 获取字典分页列表
     * @param queryParams 查询参数
     * @return 分页列表
     */
    Page<DictPageVO> getDictPage(DictPageQuery queryParams);

    /**
     * 获取字典表单
     * @param id 字典id
     * @return 字典表单
     */
    DictForm getDictForm(Long id);

    /**
     * 保存字典表单
     * @param dictForm 字典表单
     * @return true:成功/false:失败
     */
    boolean saveDict(DictForm dictForm);

    /**
     * 更新字典表单
     * @param id 字典id
     * @param dictForm 字典表单
     * @return true:成功/false:失败
     */
    boolean updateDict(Long id, DictForm dictForm);

    /**
     * 删除字典表单
     * @param ids 字典id集合
     * @return true:成功/false:失败
     */
    boolean deleteDict(String ids);


    /**
     * 获取字典选项列表
     * @param typeCode 字典类型编码
     * @return 字典选项列表
     */
    List<Option> listDictOptions(String typeCode);
}
